From 1034cf76241b6b809d6a1a9ed8ec4581d1a51a89 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Tue, 28 Aug 2018 16:44:19 +0200 Subject: [PATCH] babl-matrix: add babl_matrix_mul_matrixf --- babl/babl-matrix.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/babl/babl-matrix.h b/babl/babl-matrix.h index 8f331a5..2107b31 100644 --- a/babl/babl-matrix.h +++ b/babl/babl-matrix.h @@ -31,6 +31,33 @@ static inline void babl_matrix_mul_matrix (const double *matA_, } } + +static inline void babl_matrix_mul_matrixf (const float *matA_, + const float *matB_, + float *out) +{ + int i, j; + float matA[9]; + float matB[9]; + float t1, t2, t3; + memcpy (matA, matA_, sizeof (matA)); + memcpy (matB, matB_, sizeof (matB)); + + for (i = 0; i < 3; i++) + { + t1 = m(matA, i, 0); + t2 = m(matA, i, 1); + t3 = m(matA, i, 2); + + for (j = 0; j < 3; j ++) + { + m(out,i,j) = t1 * m(matB, 0, j); + m(out,i,j) += t2 * m(matB, 1, j); + m(out,i,j) += t3 * m(matB, 2, j); + } + } +} + static inline void babl_matrix_to_float (const double *in, float *out) { int i; -- 2.30.2